package com.zh.web.baseInterface;

import com.zh.web.base.ApiResult;

/**
 * 基础控制器接口
 * 该接口定义了用于构建API结果的通用方法，是创建具体控制器类的基础
 */
public interface BaseControllerInterface {

    /**
     * 构建成功的API结果包
     *
     * @param data 成功响应的数据，类型由泛型T指定
     * @return 返回包含成功标志和相应数据的API结果对象
     */
    <T> ApiResult<T> buildSuccessPackage(T data);

    /**
     * 构建成功响应包 有msg
     * @param msg 成功消息
     * @return 返回一个ApiResult对象，表示API调用成功，同时携带传入的消息
     */
    <T> ApiResult<T> buildMsgPackage(T msg);

    /**
     * 构建失败的API结果包
     *
     * @param msg 失败原因的描述信息
     * @return 返回包含失败标志和错误信息的API结果对象
     */
    <T> ApiResult<T> buildFailPackage(String msg);

    /**
     * 构建默认的API结果包
     *
     * @return 返回一个既不表示成功也不表示失败的默认API结果对象，用于处理无特定结果的操作
     */
    <T> ApiResult<T> buildDefaultPackage();
}

